#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>

// 联合的大小至少是最大成员的大小
// 当最大成员大小不是最大对齐数的整数倍的时候，就要对齐到最大对齐数的整数倍
union Data {
    char c; // 1个字节
    int i;  // 4个字节
};

int main()
{
    union Data data;
    printf("%d, %d\n", sizeof(data), sizeof(union Data)); // 4  4
    // 以下三个地址相同 - start
    printf("%p \n", &data);     
    printf("%p \n", &data.c);
    printf("%p \n", &data.i);
    // 以上三个地址相同 - end

    data.i = 0x11223344;
    data.c = 0x55;
    // 可用来测试计算机的大小端 ，如果是55223344 大端，如果是11223355 是小端
    // 大部分计算机是小端
    printf("%x \n",data.i); // 输出 11223355
    return 0;
}